package com.hzit.cart.controller;

import com.aliyun.core.annotation.Path;
import com.hzit.cart.client.UserClient;
import com.hzit.cart.entity.group.Cart;
import com.hzit.cart.service.CartService;
import com.hzit.common.utils.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpSession;
import java.util.List;

/**
 * 类名：
 * 作者：WF
 * 功能：
 */
@Controller
public class CartController {
	@Autowired
	private CartService cartService;
	@Autowired
	private UserClient userClient;

	//1. 展示购物列表
	@GetMapping({"/","/cart.html"})
	public String index(Model model,HttpSession session){
		//1.1 得到用户名
		String name = (String)session.getAttribute("name");
		//1.2 从redis中取得购物车列表
		List<Cart> cartList = cartService.getCartList(name);
		//1.3 放到model中
		model.addAttribute("cartList",cartList);
		return "cart";
	}
	//2. 添加商品到购物车中
	@GetMapping("/cart/addCart")
	public String add(String itemId, int num, HttpSession session,Model model){
		//2.1 得到用户名
		String name = (String)session.getAttribute("name");
		//2.2 添加商品到购物车中
		cartService.add(itemId,num,name);
		//2.3 从redis中取得购物车列表
		List<Cart> cartList = cartService.getCartList(name);
		//2.4 放到model中
		model.addAttribute("cartList",cartList);

		return "cart";
	}
	// 在cart模块调用用户模块的方法，查询所有用户
	@GetMapping("/cart/user/list")
	@ResponseBody
	public R findAll(){
		return userClient.list();
	}

	//【远程调用】：在当前模块中根据用户id查询远程:hzit-user模块，查询出对应的用户对象
	@GetMapping("/cart/user/findById/{id}")
	@ResponseBody
	public R findById(@PathVariable String id){
		return   userClient.findById(id);
	}
}
